// pages/product-detail/product-detail.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    productId: '',
    productInfo: null,
    loading: true,
    selectedSku: '',
    skuOptions: [],
    quantity: 1,
    currentSwiperIndex: 0,
    showPayModal: false, // 控制支付弹窗显示
    payMethod: 'wechat', // 默认支付方式
    payLoading: false // 支付中状态
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    if (options) {
      console.log(JSON.parse(options.item))
      this.setData({
        productInfo: JSON.parse(options.item),
        loading :false
      })
      //this.loadProductDetail()
    }
  },

  // 轮播图切换事件
  swiperChange(e) {
    this.setData({
      currentSwiperIndex: e.detail.current
    })
  },

  // 预览图片
  previewImage(e) {
    const index = e.currentTarget.dataset.index
    const urls = this.data.productInfo.images
    wx.previewImage({
      current: urls[index],
      urls: urls
    })
  },
  // 跳转到购物车
  goToCart() {
    wx.navigateTo({
      url: '/pages/cart/cart'
    })
  },

  onShow() {
  },

  /**
   * 选择SKU
   */
  selectSku(e) {
    const sku = e.currentTarget.dataset.sku
    this.setData({
      selectedSku: sku
    })
  },

  /**
   * 增加数量
   */
  increaseQuantity() {
    if (this.data.quantity < this.data.productInfo.balanceCount) {
      this.setData({
        quantity: this.data.quantity + 1
      })
    } else {
      wx.showToast({
        title: '已达库存上限',
        icon: 'none'
      })
    }
  },

  /**
   * 减少数量
   */
  decreaseQuantity() {
    if (this.data.quantity > 1) {
      this.setData({
        quantity: this.data.quantity - 1
      })
    }
  },

  addToCart() {
    let arr = wx.getStorageSync('shopCar')||[];
    const id = this.data.productInfo.id
    let existFlg = false;
    for(let i=0;i<arr.length;i++){
      if(arr[i].productId == id){
        arr[i].num = arr[i].num+1;
        existFlg = true;
      }
    }
    if(!existFlg){
      arr.push({
        productId:id,
        num:1
      })
    }
    wx.setStorageSync('shopCar', arr)
    // 添加到购物车逻辑
    wx.showToast({
      title: '已加入购物车',
      icon: 'success'
    })
  },
  /**
   * 立即购买
   */
  buyNow() {
    if (!this.data.productInfo) return
    
    // 显示支付弹窗
    this.setData({
      showPayModal: true
    })
  },
  
  /**
   * 关闭支付弹窗
   */
  closePayModal() {
    this.setData({
      showPayModal: false
    })
  },
  
  /**
   * 阻止事件冒泡
   */
  stopPropagation() {
    // 阻止事件冒泡，防止点击弹出框内容时关闭弹出框
    // 不直接使用e.stopPropagation()以避免在某些环境下报错
  },
  
  /**
   * 选择支付方式
   */
  selectPayMethod(e) {
    const { method } = e.currentTarget.dataset
    this.setData({
      payMethod: method
    })
  },
  
  /**
   * 确认支付
   */
  confirmPayment() {
    if (!this.data.productInfo) return
    
    // 显示支付中状态
    this.setData({
      payLoading: true
    })
    
    // 构建要购买的商品信息
    const API = require('../../utils/api.js');
    const submitArr = [{
      productId: this.data.productInfo.id,
      num: this.data.quantity,
      price: this.data.productInfo.afterPrice*this.data.quantity,
      productName: this.data.productInfo.productName
    }]
    
    // 调用购物车相同的订单提交API
    API.shopCartOrder(submitArr).then(res=>{
      this.setData({
        payLoading: false,
        showPayModal: false
      })
      
      // 显示支付成功提示
      wx.showToast({
        title: '购买成功',
        icon: 'success',
        duration: 2000
      })
      
      // 跳转到订单列表页面
      setTimeout(() => {
        wx.navigateTo({
          url: '/pages/orders/orders?status=success'
        })
      }, 2000)
    }).catch(error => {
      this.setData({
        payLoading: false,
        showPayModal: false
      })
      console.error('购买失败:', error)
      wx.showToast({
        title: '购买失败:'+error.message,
        icon: 'none'
      })
    })
  },
  
  /**
   * 取消支付
   */
  cancelPayment() {
    this.setData({
      showPayModal: false
    })
  },

  /**
   * 跳转到购物车
   */
  goToCart() {
    wx.navigateTo({
      url: '/pages/cart/cart'
    })
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
    this.loadProductDetail()
    wx.stopPullDownRefresh()
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {
    const productTitle = this.data.productInfo ? this.data.productInfo.title : '网球装备'
    const productId = this.data.productId
    const imageUrl = this.data.productInfo && this.data.productInfo.images ? this.data.productInfo.images[0] : '/images/share-product.jpg'
    
    return {
      title: productTitle,
      path: `/pages/product-detail/product-detail?id=${productId}`,
      imageUrl: imageUrl
    }
  }
})